From: Jonas Ã…dahl Date: Mon, 26 Aug 2019 13:37:09 +0000 (+0300) Subject: shell: Get cairo surface via window actor X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~827^2^2~7 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b73aace4767c52454dabf25cd624f9abd2da6bff;p=gnome-shell.git shell: Get cairo surface via window actor Instead of going via the MetaShapedTexture to get the cairo surface, get it from the window actor. The window actor can then handle this in a way that makes it include potential subsurfaces. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/692 --- diff --git a/src/shell-screenshot.c b/src/shell-screenshot.c index 40481c7cf..c7f0ed2b6 100644 --- a/src/shell-screenshot.c +++ b/src/shell-screenshot.c @@ -5,7 +5,6 @@ #include #include #include -#include #include #include @@ -457,7 +456,6 @@ grab_window_screenshot (ClutterActor *stage, MetaWindow *window = meta_display_get_focus_window (display); ClutterActor *window_actor; gfloat actor_x, actor_y; - MetaShapedTexture *stex; MetaRectangle rect; cairo_rectangle_int_t clip; @@ -477,8 +475,8 @@ grab_window_screenshot (ClutterActor *stage, clip.width = priv->screenshot_area.width = rect.width; clip.height = priv->screenshot_area.height = rect.height; - stex = META_SHAPED_TEXTURE (meta_window_actor_get_texture (META_WINDOW_ACTOR (window_actor))); - priv->image = meta_shaped_texture_get_image (stex, &clip); + priv->image = meta_window_actor_get_image (META_WINDOW_ACTOR (window_actor), + &clip); priv->datetime = g_date_time_new_now_local (); if (priv->include_cursor) diff --git a/src/shell-util.c b/src/shell-util.c index 5838d2327..01be73b0b 100644 --- a/src/shell-util.c +++ b/src/shell-util.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #ifdef HAVE__NL_TIME_FIRST_WEEKDAY @@ -430,14 +429,12 @@ ClutterContent * shell_util_get_content_for_window_actor (MetaWindowActor *window_actor, MetaRectangle *window_rect) { - MetaShapedTexture *texture; ClutterContent *content; cairo_surface_t *surface; cairo_rectangle_int_t clip; gfloat actor_x, actor_y; gfloat resource_scale; - texture = meta_window_actor_get_texture (window_actor); clutter_actor_get_position (CLUTTER_ACTOR (window_actor), &actor_x, &actor_y); if (!clutter_actor_get_resource_scale (CLUTTER_ACTOR (window_actor), @@ -453,7 +450,7 @@ shell_util_get_content_for_window_actor (MetaWindowActor *window_actor, clip.width = ceilf (window_rect->width * resource_scale); clip.height = ceilf (window_rect->height * resource_scale); - surface = meta_shaped_texture_get_image (texture, &clip); + surface = meta_window_actor_get_image (window_actor, &clip); content = clutter_canvas_new (); clutter_canvas_set_size (CLUTTER_CANVAS (content),